package com.huawei.hms.auth.api.signin;

import android.text.TextUtils;
import com.huawei.hms.support.api.client.Result;
import com.huawei.hms.support.api.client.Status;
import com.huawei.hms.support.api.hwid.SignInHuaweiId;
import com.huawei.updatesdk.service.otaupdate.UpdateKey;
import org.json.JSONException;
import org.json.JSONObject;

public class HuaweiIdSignInResult extends Result {
    private SignInHuaweiId signInHuaweiId;

    public SignInHuaweiId getSignInAccount() {
        return this.signInHuaweiId;
    }

    public SignInHuaweiId getSignInHuaweiId() {
        return this.signInHuaweiId;
    }

    public void setSignInHuaweiId(SignInHuaweiId signInHuaweiId) {
        this.signInHuaweiId = signInHuaweiId;
    }

    public boolean isSuccess() {
        return getStatus().isSuccess();
    }

    public HuaweiIdSignInResult fromJson(String str) throws JSONException {
        if (!TextUtils.isEmpty(str)) {
            JSONObject jSONObject = new JSONObject(str);
            jsonToSuper(jSONObject);
            jSONObject = jSONObject.optJSONObject("signInHuaweiId");
            if (jSONObject != null) {
                this.signInHuaweiId = SignInHuaweiId.fromJson(jSONObject);
            }
        }
        return this;
    }

    protected void jsonToSuper(JSONObject jSONObject) {
        JSONObject optJSONObject = jSONObject.optJSONObject(UpdateKey.STATUS);
        if (optJSONObject != null) {
            setStatus(new Status(optJSONObject.optInt("statusCode"), optJSONObject.optString("statusMessage", null)));
        }
    }

    public String toJson() throws JSONException {
        return toJsonObject().toString();
    }

    protected JSONObject toJsonObject() throws JSONException {
        JSONObject superToJson = superToJson();
        if (this.signInHuaweiId != null) {
            superToJson.put("signInHuaweiId", this.signInHuaweiId);
        }
        return superToJson;
    }

    protected JSONObject superToJson() throws JSONException {
        JSONObject jSONObject = new JSONObject();
        if (getStatus() != null) {
            JSONObject jSONObject2 = new JSONObject();
            jSONObject2.put("statusCode", getStatus().getStatusCode());
            if (getStatus().getStatusMessage() != null) {
                jSONObject2.put("statusMessage", getStatus().getStatusMessage());
            }
            jSONObject.put(UpdateKey.STATUS, jSONObject2);
        }
        return jSONObject;
    }
}
